package com.capgemini.cn.authority.core.automation;

import com.capgemini.cn.authority.data.enums.AuthorityType;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * Created at 2017/9/29
 *
 * @author Andriy
 */
@NoArgsConstructor
@AllArgsConstructor
public class AuthorizeEntity {

    /**
     * 权限类型
     */
    @Getter
    @Setter
    private AuthorityType authorityType;

    /**
     * 名称，用以标识权限和对应资源的名字
     */
    @Getter
    @Setter
    private String name;

    /**
     * 权限编码，用以在授权用户组时的标识
     */
    @Getter
    @Setter
    private String code;

    /**
     * 资源组信息，用以标识当前资源所存放的资源组
     */
    @Getter
    @Setter
    private String groups;

    /**
     * 资源值，用以权限校验时判断该资源的访问是否被授权
     * <p>对于权限类型为{@link AuthorityType}.HTTP的权限，该值通常设置为请求的URL地址</p>
     */
    @Getter
    @Setter
    private String assetValue;

    /**
     * 是否自动注册资源
     */
    @Getter
    @Setter
    private boolean register;
}
